package jedis;

import redis.clients.jedis.Jedis;

public class TestSet {

    public static void main(String[] args) {
//        Jedis jedis = new Jedis("127.0.0.1", 6379);
        Jedis jedis = JedisUtil.getJedis();

        jedis.flushDB();
        System.out.println("============向集合中添加元素（不重复）============");
        System.out.println(jedis.sadd("eleSet", "e1","e2","e4","e3","e0","e8","e7","e5")); //8
        System.out.println(jedis.sadd("eleSet", "e6")); // 1
        System.out.println(jedis.sadd("eleSet", "e6")); // 0
        System.out.println("eleSet的所有元素为："+jedis.smembers("eleSet")); //eleSet的所有元素为：[e4, e3, e0, e1, e5, e8, e6, e2, e7]
        System.out.println("删除一个元素e0："+jedis.srem("eleSet", "e0")); //删除一个元素e0：1
        System.out.println("eleSet的所有元素为："+jedis.smembers("eleSet")); //eleSet的所有元素为：[e1, e5, e8, e3, e4, e6, e2, e7]
        System.out.println("删除两个元素e7和e6："+jedis.srem("eleSet", "e7","e6")); //删除两个元素e7和e6：2
        System.out.println("eleSet的所有元素为："+jedis.smembers("eleSet")); //eleSet的所有元素为：[e3, e4, e1, e8, e5, e2]
        System.out.println("随机的移除集合中的一个元素："+jedis.spop("eleSet")); //随机的移除集合中的一个元素：e1
        System.out.println("随机的移除集合中的一个元素："+jedis.spop("eleSet")); //随机的移除集合中的一个元素：e8
        System.out.println("eleSet的所有元素为："+jedis.smembers("eleSet")); //eleSet的所有元素为：[e3, e4, e5, e2]
        System.out.println("eleSet中包含元素的个数："+jedis.scard("eleSet")); //eleSet中包含元素的个数：4
        System.out.println("e3是否在eleSet中："+jedis.sismember("eleSet", "e3")); //e3是否在eleSet中：true (再次运行可能会对不上，因为spop为随机弹出)
        System.out.println("e1是否在eleSet中："+jedis.sismember("eleSet", "e1")); //e1是否在eleSet中：false(再次运行可能会对不上，因为spop为随机弹出)
        System.out.println("=================================");
        System.out.println(jedis.sadd("eleSet1", "e1","e2","e4","e3","e0","e8","e7","e5")); //8
        System.out.println(jedis.sadd("eleSet2", "e1","e2","e4","e3","e0","e8")); //6
        System.out.println("将eleSet1中删除e1并存入eleSet3中："+jedis.smove("eleSet1", "eleSet3", "e1")); //将eleSet1中删除e1并存入eleSet3中：1 (移到集合元素)
        System.out.println("将eleSet1中删除e2并存入eleSet3中："+jedis.smove("eleSet1", "eleSet3", "e2")); //将eleSet1中删除e2并存入eleSet3中：1
        System.out.println("eleSet1中的元素："+jedis.smembers("eleSet1")); //eleSet1中的元素：[e7, e4, e3, e0, e5, e8]
        System.out.println("eleSet3中的元素："+jedis.smembers("eleSet3")); //eleSet3中的元素：[e2, e1]
        System.out.println("============集合运算=================");
        System.out.println("eleSet1中的元素："+jedis.smembers("eleSet1")); //eleSet1中的元素：[e7, e4, e3, e0, e5, e8]
        System.out.println("eleSet2中的元素："+jedis.smembers("eleSet2")); //eleSet1中的元素：[e7, e4, e3, e0, e5, e8]
        System.out.println("eleSet1和eleSet2的交集:"+jedis.sinter("eleSet1","eleSet2")); //eleSet1和eleSet2的交集:[e3, e4, e0, e8]
        System.out.println("eleSet1和eleSet2的并集:"+jedis.sunion("eleSet1","eleSet2")); //eleSet1和eleSet2的并集:[e4, e3, e0, e1, e8, e5, e7, e2]
        System.out.println("eleSet1和eleSet2的差集:"+jedis.sdiff("eleSet1","eleSet2"));//eleSet1和eleSet2的差集:[e7, e5] (eleSet1中有，eleSet2中没有)
        jedis.sinterstore("eleSet4","eleSet1","eleSet2");//求交集并将交集保存到dstkey的集合
        System.out.println("eleSet4中的元素："+jedis.smembers("eleSet4")); //eleSet4中的元素：[e8, e0, e3, e4]

        jedis.close();
    }

}
